package org.eiahe.hr.attendance.service;

import org.eiahe.hr.attendance.domain.bo.AttendanceAlertBo;
import org.eiahe.hr.attendance.domain.vo.AttendanceAlertVo;
import org.ehe.common.mybatis.core.page.PageQuery;
import org.ehe.common.mybatis.core.page.TableDataInfo;

import java.util.List;

/**
 * 考勤异常提醒Service接口
 *
 * @author zhangnn
 */
public interface IAttendanceAlertService {

    /**
     * 查询考勤异常提醒列表
     */
    TableDataInfo<AttendanceAlertVo> queryPageList(AttendanceAlertBo bo, PageQuery pageQuery);

    /**
     * 查询考勤异常提醒列表
     */
    List<AttendanceAlertVo> queryList(AttendanceAlertBo bo);

    /**
     * 根据ID查询考勤异常提醒
     */
    AttendanceAlertVo queryById(Long alertId);

    /**
     * 新增考勤异常提醒
     */
    Boolean insertByBo(AttendanceAlertBo bo);

    /**
     * 修改考勤异常提醒
     */
    Boolean updateByBo(AttendanceAlertBo bo);

    /**
     * 删除考勤异常提醒
     */
    Boolean deleteWithValidById(Long alertId);

    /**
     * 生成考勤异常提醒(定时任务调用)
     * 
     * @param alertDate 提醒日期
     */
    void generateAlerts(java.time.LocalDate alertDate);

    /**
     * 发送月度异常汇总邮件给部门负责人
     * 
     * @param year  年份
     * @param month 月份
     */
    void sendMonthlyAlertSummary(Integer year, Integer month);
}
